Принцип розділення інтерфейсів (ISP)

📌 Що таке ISP?

Принцип розділення інтерфейсів (Interface Segregation Principle) стверджує, що великі інтерфейси слід розбивати на менші, щоб класи не залежали від методів, які вони не використовують.

🛠 Приклад порушення ISP

У цьому прикладі клас Printer змушений реалізовувати методи, які йому не потрібні.

                
public interface Machine {
    void print();
    void scan();
    void fax();
}

public class Printer implements Machine {
    @Override
    public void print() {
        System.out.println("Друк документа");
    }
    
    @Override
    public void scan() {
        throw new UnsupportedOperationException("Сканування не підтримується");
    }
    
    @Override
    public void fax() {
        throw new UnsupportedOperationException("Факс не підтримується");
    }
}
                
            

✅ Виправлення ISP

Ми розбиваємо великий інтерфейс на кілька менших, щоб кожен клас реалізовував лише необхідний функціонал.

                
public interface Printer {
    void print();
}

public interface Scanner {
    void scan();
}

public interface Fax {
    void fax();
}

public class BasicPrinter implements Printer {
    @Override
    public void print() {
        System.out.println("Друк документа");
    }
}
                
            

Назад Далі